import VueRouter from 'vue-router'

import News from "../pages/student/News";
import Message from "../pages/student/messages/Message";
import Messages from "../pages/student/Messages";
import Student from "../pages/Student";
import Teacher from "../pages/Teacher";
const router = new VueRouter({
  routes:[
    {
      name:"student", //可简化访问路径
      path:'/student',
      component:Student,
      meta:{ispass:true,title:'学生'},
      children:[
        {
          name:'news',
          meta:{ispass:true,title:'学生新闻'},// meta 属性类似于 C# 中控件的tag属性，可以自定义属性
          path:'news',
          component:News
        },{
          name:'messages',
          meta:{ispass:true,title:'学生消息'},// meta 属性类似于 C# 中控件的tag属性，可以自定义属性
          path:'messages',
          component:Messages,
          children:[
            {
              name:'mes',
              path:'message',
              meta:{ispass:true,title:'学生消息详情'},// meta 属性类似于 C# 中控件的tag属性，可以自定义属性
              component:Message,
              props({query:{id,title}}){
                return {
                  id ,
                  title
                }
              },
              //全局守卫在的时候，这个好像没用
              beforeEnter:(from,to,next)=>{
                console.log("=====消息自己的routeenter",to)
                if(  localStorage.getItem('user')==='杨涛1')
                  next()
                else
                  console.log('我自己也可以拦截')
              }
            },
          ]
        },
      ]
    },{
      name:'teacher',
      meta:{ispass:true,title:'老师'},
      path:'/teacher',
      component:Teacher
    }
  ]
})
//全局路由守卫,类似javaweb中的filter拦截器，不过参数不一样
router.beforeEach((to, from, next)=>{
  console.log('初始化，或者切换之前，这个方法会执行')
  console.log('to',to.meta.ispass,to)
  console.log("from",from )

  // 利用过滤器类似的功能可以进行权限判定
  if(to.meta.ispass &&  localStorage.getItem('user')==='杨涛')
     next();//放行
  else
    console.log('权限不足，不能访问')
  // 路径过滤可以使用to.name指定相关路径名，简化方式，就是在路由对象中配置一个布尔值
  // 比如 ispass可以加入到meta属性中


})
//后置守卫,后端需求一般是日志,类似于结束路由工作的监听。
router.afterEach((to, from)=>{
  console.log(to,from)
  document.title =to.meta.title
})
//在暴露之前要做出相关守卫配置
export default router
